package com.qamaster;

import java.util.ArrayList;

public class Egg_macro implements Runnable {
	ArrayList<Integer> arr_pos = new ArrayList<Integer>();
	int count;
	MonkeyExt device;
	private boolean stopped = false;
	int x = 640;
	int y = 348;
	int xx = 750;
	int yy = 210;
	int x_sell = 1050;
	int y_sell = 650;
	int x_yes = 735;
	int y_yes = 520;
	int x_drag = 310;
	int y_drag = 390;

	public Egg_macro(MonkeyExt device, int count) {
		this.device = device;
		this.count = count;
		device.wake();
		make_pos();
		try {
			Thread.sleep(2000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public void dostop() {
		stopped = true;
	}

	public void arr_add(int t, int x, int y, int x_drag, int y_drag, int sleep) {
		arr_pos.add(t);
		arr_pos.add(x);
		arr_pos.add(y);
		arr_pos.add(x_drag);
		arr_pos.add(y_drag);
		arr_pos.add(sleep);
	}

	public void make_pos() {
		if (QAMaster.dtm_device.getValueAt(2, 1).toString().equals("720 x 1280")||
				QAMaster.dtm_device.getValueAt(2, 1).toString().equals("1280 x 720")) {
			int x = 640;
			int y = 348;
			int xx = 750;
			int yy = 210;
			int x_sell = 1050;
			int y_sell = 650;
			int x_yes = 735;
			int y_yes = 520;
			int x_drag = 310;
			int y_drag = 390;
			arr_add(0, x, y, 0, 0, 12);
			arr_add(0, x + 170, y, 0, 0, 9);
			arr_add(0, x, y, 0, 0, 3);
			arr_add(0, x_sell, y_sell, 0, 0, 6);
			arr_add(0, x_yes, y_yes, 0, 0, 3);
			arr_add(0, x + 340, y, 0, 0, 8);
			arr_add(0, x + 170, y, 0, 0, 3);
			arr_add(0, x_sell, y_sell, 0, 0, 6);
			arr_add(0, x_yes, y_yes, 0, 0, 3);
			arr_add(0, x + 340, y, 0, 0, 3);
			arr_add(0, x_sell, y_sell, 0, 0, 6);
			arr_add(0, x_yes, y_yes, 0, 0, 3);
			arr_add(0, 100, 80, 0, 0, 5);
			arr_add(0, 250, 80, 0, 0, 10);
			arr_add(0, 200, 450, 0, 0, 3);
			arr_add(0, xx, yy, 0, 0, 3);
			arr_add(0, xx + 170, yy, 0, 0, 3);
			arr_add(0, xx + 340, yy, 0, 0, 3);
			arr_add(0, xx + 280, yy, 0, 0, 3);
			arr_add(1, x_drag, y_drag, 0, 110, 1);
		}
		if (QAMaster.dtm_device.getValueAt(2, 1).toString().equals("1920 x 1080")||
				QAMaster.dtm_device.getValueAt(2, 1).toString().equals("1080 x 1920")) {
			int x = 960;
			int y = 529;
			int xx = 1120;
			int yy = 330;
			int x_sell = 1630;
			int y_sell = 980;
			int x_yes = 1100;
			int y_yes = 840;
			int x_drag = 400;
			int y_drag = 530;
			arr_add(0, x, y, 0, 0, 12);
			arr_add(0, x + 260, y, 0, 0, 9);
			arr_add(0, x, y, 0, 0, 3);
			arr_add(0, x_sell, y_sell, 0, 0, 6);
			arr_add(0, x_yes, y_yes, 0, 0, 3);
			arr_add(0, x + 520, y, 0, 0, 8);
			arr_add(0, x + 260, y, 0, 0, 3);
			arr_add(0, x_sell, y_sell, 0, 0, 6);
			arr_add(0, x_yes, y_yes, 0, 0, 3);
			arr_add(0, x + 520, y, 0, 0, 3);
			arr_add(0, x_sell, y_sell, 0, 0, 6);
			arr_add(0, x_yes, y_yes, 0, 0, 3);
			arr_add(0, 160, 140, 0, 0, 5);
			arr_add(0, 370, 130, 0, 0, 10);
			arr_add(0, 300, 670, 0, 0, 3);
			arr_add(0, xx, yy, 0, 0, 3);
			arr_add(0, xx + 260, yy, 0, 0, 3);
			arr_add(0, xx + 520, yy, 0, 0, 3);
			arr_add(0, xx + 440, yy, 0, 0, 3);
			arr_add(1, x_drag, y_drag, 0, 170, 1);
		}
	}

	public void run() {
		int i = 0;
		int ii = 0;
		while (!stopped && i < count) {
			i++;
			QAMaster.pBar.setValue((i) * 100 / count);
			QAMaster.add_list(device.drag(x_drag, y_drag, 0, -300));
			QAMaster.add_list(device.drag(x_drag, y_drag, 0, -300));
			if (QAMaster.dtm_device.getValueAt(2, 1).toString().equals("720 x 1280")||
					QAMaster.dtm_device.getValueAt(2, 1).toString().equals("1280 x 720")) {
				QAMaster.add_list(device.drag(x_drag, y_drag, 0, -170));
			}
			if (QAMaster.dtm_device.getValueAt(2, 1).toString().equals("1920 x 1080")||
					QAMaster.dtm_device.getValueAt(2, 1).toString().equals("1080 x 1920")) {
				QAMaster.add_list(device.drag(x_drag, y_drag, 0, -320));
				QAMaster.add_list(device.drag(x_drag, y_drag, 0, -270));
			}
			for (ii = 0; ii < 7; ii++) {
				for (int j = 0; j < arr_pos.size(); j += 6) {
					if (stopped) {
						break;
					}
					if (arr_pos.get(j) == 0) {
						QAMaster.add_list(device.touch(arr_pos.get(j + 1),
								arr_pos.get(j + 2)));
						try {
							Thread.sleep(arr_pos.get(j + 5) * 100);
						} catch (InterruptedException e) {
							// TODO Auto-generated catch block
							e.printStackTrace();
						}

					}
					if (arr_pos.get(j) == 1) {
						QAMaster.add_list(device.drag(arr_pos.get(j + 1),
								arr_pos.get(j + 2), arr_pos.get(j + 3),
								arr_pos.get(j + 4)));
						try {
							Thread.sleep(arr_pos.get(j + 5) * 100);
						} catch (InterruptedException e) {
							// TODO Auto-generated catch block
							e.printStackTrace();
						}
					}

				}
			}
		}
	}
}